//package dubbo.filter;
//
//import config.AnnotationConsumerMain;
//
//import java.util.*;
//
///**
// * @Description: TODO
// * @Author 50705 2021/11/25
// **/
//public class TPRunnable implements Runnable {
//
//    @Override
//    public void run() {
//        for(Map.Entry<String, List<MethodInvokerInfo>> item : AnnotationConsumerMain.methodMap.entrySet()){
//            long currTime = System.currentTimeMillis();
//            String methodName = item.getKey();
//            Date date = new Date(currTime);
//            System.out.println("===" + date + ": " + methodName + "方法的TP90:" + this.getTP(methodName, 0.9, currTime)
//                    + ";方法的TP99:" + this.getTP(methodName, 0.9, currTime));
//        }
//    }
//
//    public Long getTP(String method, double rate, Long currTime){
//        Long time = 0L;
//
//        Long startTime = currTime - 60*1000;
//
//        List<MethodInvokerInfo> methodInvokerInfos = AnnotationConsumerMain.methodMap.get(method);
//        List<Long> lastList = new ArrayList<>();
//        for(MethodInvokerInfo item : methodInvokerInfos){
//            if(item.getStart() >= startTime && item.getEnd() <= currTime ){
//                lastList.add(item.getTime());
//            }
//        }
//
//        if(lastList.size() > 0){
//            Collections.sort(lastList);
//            time = lastList.get((int) (lastList.size() * rate));
//        }
//        return time;
//    }
//}
